package com.example.blog.modules.article.service;

import com.example.blog.modules.article.dto.FavoriteDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface FavoriteService {
    /**
     * 添加收藏
     */
    FavoriteDTO addFavorite(Long articleId, String note);

    /**
     * 取消收藏
     */
    void removeFavorite(Long articleId);

    /**
     * 获取用户的收藏列表
     */
    Page<FavoriteDTO> getUserFavorites(Pageable pageable);

    /**
     * 检查文章是否已收藏
     */
    boolean hasFavorited(Long articleId);

    /**
     * 获取用户收藏数量
     */
    long countUserFavorites();

    /**
     * 获取文章收藏数量
     */
    long countArticleFavorites(Long articleId);
} 